package com.fjec.user.service;

import com.fjec.user.entity.SysUser;

import java.util.List;
import java.util.Map;

public interface IUserService {

    /**
     * 根据openId获取角色列表
     *
     * @param openId
     * @return
     */
    List<String> getRoleCodesByOpenId(String openId);

    /**
     * 根据userName获取角色列表
     *
     * @param userName
     * @return
     */
    List<String> getRoleCodesByUserName(String userName);

    /**
     * 根据用户Id查询用户角色列表
     *
     * @param userId
     * @return
     */
    List<String> getRoleCodesByUserId(Long userId);

    /**
     * 根据用户名查询用户
     *
     * @param userName
     * @return
     */
    SysUser getSysUserByUserName(String userName);

    /**
     * 根据角色编码获取权限列表
     *
     * @param roleCode
     * @return
     */
    List<String> getPermsByRoleCode(String roleCode);

    /**
     * 记录登录日志
     *
     * @param userId
     * @param appType
     */
    void saveLoginLog(Long userId, Integer appType);

    /**
     * 根据openid获取用户信息
     *
     * @param openId
     * @return
     */
    SysUser getSysUserByOpenId(String openId);

    /**
     * 获取登录需要的信息
     *
     * @param userId
     * @param busiType
     * @return
     */
    Map<String, Object> getSessionInfo(Long userId, int busiType);

    /**
     * 查询电话号码是否存在
     *
     * @param phone
     * @return
     */
    boolean existsPhone(String phone);

    /**
     * 为创建商户更新用户信息
     *
     * @return
     */
    void updateUserInfoForCreateShop(Map<String, Object> dataMap);
}
